package com.universest.swordholder.model.prompt

import com.universest.swordholder.aitool.Message
import org.apache.commons.text.StringSubstitutor

/**
 * Prompt类用于定义AI交互的模板
 * @param templates 可变长度的Pair序列，每个Pair包含角色和对应的模板内容
 */
data class Prompt(val templates: List<Pair<String, String>>) {
    
    /**
     * 将模板转换为消息列表
     * @param params 模板参数
     * @return 消息列表
     */
    fun toMessageList(params: Map<String, String>): List<Message> {
        return templates.map { (role, template) ->
            val content = StringSubstitutor.replace(template, params)
            Message(role, content)
        }
    }
}